﻿/*
 *  @include "wsh-doc.js"
 */


/**
 * @class
 */
Folder = function() {
			
	/**
	 * 目录属性
	 */
	this.Attributes = 0;
	
	/**
	 * 创建时间 
	 */
	this.DateCreated = null;
	
	/**
	 * 目录内的文件集合
	 */
	this.Files = {};
	
	/**
	 * 名称 
	 */
	this.Name = "";
	
	/**
	 * 大小
	 */
	this.Size = 0;
	
	/**
	 * 子目录集合
	 */
	this.SubFolders = {};
	
	this.Type = "";
}

/**
 * @class
 */
File = function() {
			
	/**
	 * 目录属性
	 */
	this.Attributes = 0;
	
	/**
	 * 创建时间 
	 */
	this.DateCreated = null;
	
	/**
	 * 名称 
	 */
	this.Name = "";
	
	/**
	 * 大小
	 */
	this.Size = 0;
	
	this.Type = "";
}


/**
 * 文件对象
 * @class
 */
FileSystemObject = function () {
	
	/**
	 * 在指定的目录上添加一个子目录得到一个路径
	 * 本函数并不创建实际目录
	 * @param String path 源目录的绝对或相对路径
	 * @param String name 子目录名
	 * @return String
	 */
	this.BuildPath = function(path, name) {}
	
	/**
	 * 复制文件
	 * @param String source 源路径
	 * @param String destination 目标路径
	 * @param Boolean overwrite 是否覆盖
	 */
	this.CopyFile = function(source, destination, overwrite) {}
	
	/**
	 * 复制目录
	 * @param String source 源路径
	 * @param String destination 目标路径
	 * @param Boolean overwrite 是否覆盖
	 */
	this.CopyFolder = function(source, destination, overwrite) {}
	
	/**
	 * 创建目录
	 * @param String foldername 目录路径
	 */
	this.CreateFolder = function(foldername) {}
	
	/**
	 * 创建文件
	 * @param String filename 源路径
	 * @param Boolean overwrite [可选]是否覆盖
	 * @param Boolean unicode [可选]文件编码是否是unicode
	 * @return TextStream
	 */
	this.CreateTextFile = function(filename, overwrite, unicode) {}
	
	/**
	 * 创建文件
	 * @param String filespec 文件路径
	 * @param Boolean force [可选]是否强制删除只读属性的文件
	 */
	this.DeleteFile = function(filespec, force) {}
	
	/**
	 * 创建文件
	 * @param String folder 文件夹路径
	 * @param Boolean force [可选]是否强制删除只读属性的文件
	 */
	this.DeleteFolder = function(folder, force) {}
	
	/**
	 * 分区是否存在
	 * @param String drivespec 盘符
	 * @return Boolean
	 */
	this.DriveExists = function(drivespec) {}
	
	/**
	 * 文件是否存在
	 * @param String filespec 文件路径
	 * @return Boolean
	 */
	this.FileExists = function(filespec) {}
	
	/**
	 * 目录是否存在
	 * @param String folderspec 路径
	 * @return Boolean
	 */
	this.FolderExists = function(folderspec) {}
		
	/**
	 * 根据相对路径获得绝对路径
	 * @param String folderspec 相对路径
	 * @return String 
	 */
	this.GetAbsolutePathName = function(pathspec) {}
		
	/**
	 * 路径最后一节点的名称
	 * @param String pathspec 路径
	 * @return String 
	 */
	this.GetBaseName = function(pathspec) {}
		
	/**
	 * 获得一个分区
	 * @param String drivespec 分区盘符
	 * @return Drive 
	 */
	this.GetDrive = function(drivespec) {}
		
	/**
	 * 获得一个路径的分区名
	 * @param String path 路径
	 * @return String 
	 */
	this.GetDriveName = function(path) {}
		
	/**
	 * 获得文件的扩展名
	 * @param String path 文件
	 * @return String 
	 */
	this.GetExtensionName = function(path) {}
		
	/**
	 * 获得一个文件对象
	 * @param String filespec 文件路径
	 * @return File 
	 */
	this.GetFile = function(filespec) {}
		
	/**
	 * 获得一个文件的版本
	 * @param String filespec 文件路径
	 * @return String 
	 */
	this.GetFileVersion = function(pathspec) {}
		
	/**
	 * 获得一个路径的文件名
	 * @param String pathspec 路径
	 * @return String 
	 */
	this.GetFileName = function(pathspec) {}
		
	/**
	 * 获得一个文件夹对象
	 * @param String folderspec 路径
	 * @return Folder 
	 * @type Folder
	 */
	this.GetFolder = function(folderspec) {}
		
	/**
	 * 获得一个路径的父路径
	 * @param String path 路径
	 * @return String
	 */
	this.GetParentFolderName = function(path) {}
		
	/**
	 * 获得特殊文件夹
	 * @param Number folderspec 0:Windows,1:System,2:Temporary
	 * @return String
	 */
	this.GetSpecialFolder = function(folderspec) {}
		
	/**
	 * 获得标准流对象
	 * @param Number standardStreamType 
	 * @param Boolean unicode 是否是unicode
	 * @return TextStream
	 */
	this.GetStandardStream = function(standardStreamType, unicode) {}
		
	/**
	 * 生成一个随机文件名
	 * @return String
	 */
	this.GetTempName = function() {}
	
	/**
	 * 移动文件
	 * @param String source 源
	 * @param String destination 目标
	 */
	this.MoveFile = function(source, destination) {}
	
	/**
	 * 移动目录
	 * @param String source 源
	 * @param String destination 目标
	 */
	this.MoveFolder = function(source, destination) {}
		
	/**
	 * 打开文件
	 * @param String filename 文件路径
	 * @param Number iomode [可选]打开方式, 1:读,2:写,8:追加,可按位组合
	 * @param Boolean create [可选]是否创建新文件
	 * @param Number format [可选]文件编码 -2:系统默认,-1:unicode,0:ascii
	 * @return TextStream
	 */
	this.OpenTextFile = function(filename, iomode, create, format) {}
}